Calling One Program from Another

One program can call another program as a subroutine. The subroutine can be external (a separate program) or internal (included in the main program). Subroutines are useful when a program needs to repeat the same group of commands at several different places.

Calling a Separate Program

To call a separate program, use the same syntax that you use to run the program from the entry line.

Defining and Calling an Internal Subroutine

To define an internal subroutine, use the Define command with Prgm...EndPrgm. Because a subroutine must be defined before it can be called, it is a good practice to define subroutines at the beginning of the main program.

An internal subroutine is called and executed in the same way as a separate program.

À

Declares the subroutine as a local variable.

Á

Defines the subroutine.

Â

Calls the subroutine.

Note: Use the Program Editor’s Var menu to enter the Define and Prgm...EndPrgm commands.

Notes about Using Subroutines

At the end of a subroutine, execution returns to the calling program. To exit a subroutine at any other time, use Return with no argument.

A subroutine cannot access local variables declared in the calling program. Likewise, the calling program cannot access local variables declared in a subroutine.

Lbl commands are local to the programs in which they are located. Therefore, a Goto command in the calling program cannot branch to a label in a subroutine or vice versa.

Avoiding Circular-Definition Errors

When evaluating a user-defined function or running a program, you can specify an argument that includes the same variable that was used to define the function or create the program. However, to avoid circular-definition errors, you must assign a value for variables that are used in evaluating the function or running the program. For example:

– or –

À

Causes a Circular definition error message if x or i does not have a value. The error does not occur if x or i has already been assigned a value.